在軟體開發的世界裡,錯誤並不可怕,真正可怕的是未被處理的錯誤。
當我們寫程式時,總會遇到各種意料之外的情況:檔案不存在、網路中斷、使用者輸入錯誤格式,甚至是我們自己不小心寫錯的邏輯。這些狀況如果沒有妥善處理,整個程式可能會直接崩潰。
因此,今天我們要學習Python的異常處理(Exception Handling),讓程式更加健壯、可維護。
執行後會看到:
ZeroDivisionError: division by zero
這是一個異常。如果不處理,程式就會終止。
執行結果:
不能除以零!請檢查數值。
程式不會中斷,還能繼續執行。
捕捉多種類型的錯誤
有時我們不知道會遇到哪種錯誤,可以針對不同情況給出不同的反應:
try:
num = int(input("請輸入一個整數: "))
result = 10 / num
except ValueError:
print("輸入必須是數字!")
except ZeroDivisionError:
print("不能除以零!")
使用else與finally
else:如果沒有錯誤,會執行這裡的程式。
finally:無論是否發生錯誤,都一定會執行。
try:
num = int(input("請輸入一個整數: "))
result = 10 / num
except (ValueError, ZeroDivisionError) as e:
print("發生錯誤:", e)
else:
print("計算成功,結果為:", result)
finally:
print("程式執行完畢。")
自訂例外(Custom Exceptions)
有時候我們希望定義自己的錯誤情境,這時可以建立自訂的 Exception:
class NegativeNumberError(Exception):
pass
def process_number(num):
if num < 0:
raise NegativeNumberError("不允許輸入負數!")
return num * 2
try:
print(process_number(-5))
except NegativeNumberError as e:
print("自訂錯誤:", e)
學習了Python的異常處理,包括try-except、else、finally與自訂例外。這是邁向專業軟體工程的重要基礎,因為真正健壯的程式,必須能優雅地應對錯誤。